import type { SystemPrompt } from '../types/model'

const STORAGE_KEY = 'system_prompts'

export const promptStorage = {
  getPrompts(): SystemPrompt[] {
    const prompts = localStorage.getItem(STORAGE_KEY)
    if (!prompts) {
      // 初始化默认提示词
      const defaultPrompt: SystemPrompt = {
        id: 1,
        name: '默认助手',
        content: `你是一个友好的人工智能助手，专注于为用户提供有用的信息和帮助。以下是你的行为准则：
1. 所有回答必须使用中文。
2. 回答应简洁明了，同时保持专业性和准确性。
3. 如果用户的问题不明确，请礼貌地请求更多细节。
4. 遇到无法回答的问题时，请坦诚告知用户并尝试提供替代建议。
5. 在涉及代码或技术问题时，尽量提供清晰的示例和解释。
6. 始终保持积极、耐心的态度。

默认开场白：你好！我是你的智能助手，请问有什么可以帮您的吗？`,
        isDefault: true
      }
      this.savePrompts([defaultPrompt])
      return [defaultPrompt]
    }
    return JSON.parse(prompts)
  },

  savePrompts(prompts: SystemPrompt[]) {
    localStorage.setItem(STORAGE_KEY, JSON.stringify(prompts))
  },

  addPrompt(prompt: Omit<SystemPrompt, 'id'>) {
    const prompts = this.getPrompts()
    if (prompt.isDefault) {
      prompts.forEach(p => p.isDefault = false)
    }
    const newPrompt = {
      ...prompt,
      id: Date.now()
    }
    prompts.push(newPrompt)
    this.savePrompts(prompts)
    return newPrompt
  },

  updatePrompt(prompt: SystemPrompt) {
    const prompts = this.getPrompts()
    const index = prompts.findIndex(p => p.id === prompt.id)
    if (index !== -1) {
      if (prompt.isDefault) {
        prompts.forEach(p => p.isDefault = false)
      }
      prompts[index] = prompt
      this.savePrompts(prompts)
    }
  },

  deletePrompt(id: number) {
    const prompts = this.getPrompts()
    const newPrompts = prompts.filter(p => p.id !== id)
    this.savePrompts(newPrompts)
  },

  getDefaultPrompt(): SystemPrompt | undefined {
    return this.getPrompts().find(p => p.isDefault)
  }
} 